package practice;

import org.junit.Test;

/*
一个数如果恰好等于它的因子之和，这个数就称为 "完数 "。例如6=1+2+3.编程，所以怎么找出1000以内的所有完数？
 */
public class practice2 {

    @Test
    public void wanshu() {
        int sum = 1;
        for(int i = 1; i <= 1000; i++) {
            for(int j = 2; j <= (int)(Math.sqrt(i)); j++) {
                if(i%j == 0) {
                    sum += j;
                    sum += (i/j);
                }
            }
            if(sum == i) {
                System.out.print(i + " ");
            }
            sum = 1;


        }
    }

    /*public static void main(String[] args) {

        System.out.println("=====");
        int sum = 1;
        for(int i = 1; i <= 1000; i++) {
            for(int j = 2; j <= (int)(Math.sqrt(i)); j++) {
                if(i%j == 0) {
                    sum += j;
                    sum += (i/j);
                }
            }
            if(sum == i) {
                System.out.print(i + " ");
            }
            sum = 1;


        }
    } */
}
